package com.cw.service;

import com.cw.common.api.Response;
import com.cw.dto.InpatientRegistrationCondition;
import com.cw.entity.PatientBedMiddlePrebundled;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cw.request.AllSickBedsRequest;
import com.cw.response.EmptyBedsResponse;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 预绑定患者信息表 服务类
 * </p>
 *
 * @author ly
 * @since 2024-02-19
 */
public interface IPatientBedMiddlePrebundledService extends IService<PatientBedMiddlePrebundled> {
    /**
     * 床位预绑定
     *
     * @param bedId
     * @param patientId
     * @param name
     * @return
     */
    Response addPrebundled(String bedId, String patientId,String name);

    /**
     * 取消预绑定
     *
     * @param bedId
     * @param patientId
     * @return
     */
    Response updatePrebundled(String bedId, String patientId);

    /**
     * 病区查询
     * @param param
     * @return
     */
    List<EmptyBedsResponse> listPreBoundWard(AllSickBedsRequest param);

    /**
     * 预绑定床位详情
     * @param param
     * @return
     */
    Object getPreBoundBedDetail(AllSickBedsRequest param);

    /**
     * 护士站确认改床位患者出院后，之前预绑定这张床位的患者进行同步预约
     * 预绑转真实绑
     * @param bedNo
     * @return
     */
    Response updateTrueBinding(String bedNo);

    /**
     * 住院预约记录---预绑定患者查询
     * @param condition
     * @return
     */
    Map<String, Object> getThisIiPrepayinPrebundled(InpatientRegistrationCondition condition);

    /**
     * 取消绑定
     * @param bedId
     * @param name
     * @return
     */
    Response unbind(String bedId, String name);
}
